package com.sxpi.controller;

import com.sxpi.utils.AjaxResult;
import com.sxpi.utils.MinioUtils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.HashMap;
import java.util.UUID;

/**
 * @Description minio文件上传控制器
 */
@CrossOrigin
@RestController
@RequestMapping("/api")
@Slf4j
public class CommonController {

    @Autowired
    private MinioUtils minioUtils;

    /**
     * @param file     文件
     * @Description 上传文件
     */
    @GetMapping("/upload")
    public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) {
//        log.info("用户上传图片：{}", file);

        // 原始文件名
        String originalFilename = file.getOriginalFilename();
        // 截取原始文件名的后缀   ddffdfd.png
        String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
        // 构造新文件名称
        String objectName = UUID.randomUUID().toString() + extension;

        // 文件的请求路径
        minioUtils.upload(file, objectName);

        String tempUrl = minioUtils.getUrl(objectName);

        return AjaxResult.success(tempUrl);

    }

    /**
     * @param fileName 文件名称
     * @Description 得到文件url
     */
    @GetMapping("/getUrl")
    public AjaxResult getFileUrl(@RequestParam("fileName") String fileName) {
        log.info("获取文件url：{}", fileName);

        HashMap map = new HashMap();

        map.put("FileUrl", minioUtils.getFileUrl(fileName));

        return AjaxResult.success(map);
    }
}
